3D Graphics Programming with QuickDraw 3D 1.5.4

Previous | QD3D Book | Overview | Chapter Contents | Next

About QuickDraw 3D RAVE

The QuickDraw 3D Renderer Acceleration Virtual Engine (or, more briefly, QuickDraw 3D RAVE ) is the part of the Macintosh system software that controls 3D drawing engines. A drawing engine is software that supports low-level rasterization operations--that is, the process of determining values for pixels in an image on the screen or some other medium. You are probably already familiar with QuickDraw, which is a 2D drawing engine. The 3D drawing engines managed by QuickDraw 3D RAVE differ from 2D drawing engines in several important respects:

In almost all other respects, a 3D drawing engine operates just like a 2D drawing engine. You draw objects by sending drawing commands to the drawing engine, which interprets the commands and constructs a rasterized image. A 3D drawing engine is often associated with hardware designed specifically to accelerate the 3D rasterization process.

Figure 22 illustrates the position of QuickDraw 3D RAVE in relation to drawing engines, the clients that call it, and the devices driven by the drawing engines.

Figure 22 The position of QuickDraw 3D RAVE

QuickDraw 3D RAVE and all registered drawing engines with their associated devices comprise the QuickDraw 3D Acceleration Layer . As you can see, this layer operates as a hardware abstraction layer that insulates the system software (for instance, QuickDraw 3D) or other clients from the actual video display hardware and graphics acceleration hardware available on a particular Macintosh computer.

Most applications creating 3D images should use QuickDraw 3D, which determines the best drawing engine and associated output device to use to display an image. QuickDraw 3D calls that drawing engine, using functions provided by QuickDraw 3D RAVE. As a result, most applications do not need to know about the QuickDraw 3D Acceleration Layer. Instead, they should use high-level 3D system software (such as QuickDraw 3D or OpenGL) to create and render 3D models.

Occasionally, however, some software (like the 3D game shown in Figure 22 ) needs interactive performance but only limited 3D rendering capabilities. In these cases, the software can call QuickDraw 3D RAVE functions directly, to find and configure a drawing engine and to issue drawing commands.

The QuickDraw 3D Acceleration Layer is intended to provide a basis for 3D rendering at interactive speeds. Accordingly, QuickDraw 3D RAVE is implemented in such a way as to minimize the overhead incurred by communication between an application and a drawing engine. In particular, a function call from an application to QuickDraw 3D RAVE does not require a context change. In addition, a function call from an application to a drawing engine does not require intermediate processing by QuickDraw 3D RAVE. Instead, drawing calls are implemented as C language macros that call directly into the code of a drawing engine. (See "Manipulating Draw Contexts" for details.)

As a result of these two features, calling a drawing engine through QuickDraw 3D RAVE provides the same level of performance as linking the engine directly with the calling application.

Drawing Engines

Draw Contexts


© 1997 Apple Computer, Inc.

Previous | QD3D Book | Overview | Chapter Contents | Next